package pedidos.logica;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import pedidos.accesoDatos.DaoProducto;
import pedidos.modelo.Producto;

// casos de uso relacionados con productos
@Stateless
public class ServicioProductos {

	// EJBs
	
	@EJB	
	DaoProducto		daoProducto;
	
	
	// casos de uso
	
	
	// CU : agregar producto
	public void agregarProducto( Long id, Long codigoBarras, String nombre, Double precioActual ) throws Exception {
		
		// verifica que no exista otro producto con el mismo id
		Producto productoExistente = daoProducto.findById(id);
		if ( productoExistente != null ) {
			throw new Exception( "ya existe otro producto con el mismo id");
		}
		
		// verifica que no exista otro producto con el mismo codigo de barras
		productoExistente = daoProducto.buscarPorCodigoDeBarras(codigoBarras);
		if ( productoExistente != null ) {
			throw new Exception( "ya existe otro producto con el mismo codigo de barras");
		}
		
		// verifica que el precio sea un valor mayor que cero
		if (precioActual <= 0.0 ) {
			throw new Exception( "el precio debe ser mayor a cero" );
		}
		
		Producto producto = new Producto();
		producto.setId(id);
		producto.setCodigoBarras(codigoBarras);
		producto.setNombre(nombre);
		producto.setPrecioActual(precioActual);

		daoProducto.create(producto);
		
	}
	
}
